package cn.wolfcode.wolf2w.redis.util;

import cn.wolfcode.wolf2w.util.Consts;
import lombok.Getter;

/**
 * redis的key管理工具类
 * 约定:一个枚举实例就是一个key
 */
@Getter
public enum RedisKeys {

    //访问数
    VISITOR_VO("visitor_vo",-1L),

    //防刷
    BRUSH_PROOF("brush_proof",60L),

    //用户点赞对象
    USER_STRATEGY_THUMBUP("user_strategy_thumbup",-1L),

    //用户收藏对象
    USER_STRATEGY_FAVOR("user_strategy_favor",-1L),

    //攻略统计对象,-1L:无限时间
    STRATEGY_STATIS_VO("strategy_statis_vo",-1L),

    //用户登录key
    USER_LOGIN_TOKEN("user_login_token",Consts.USER_INFO_TOKEN_VAI_TIME * 60L),

    //短信验证码,new的对象,常量值不能修改
    VERIFY_CODE("verify_code", Consts.VERIFY_CODE_VAI_TIME * 60L);

    //redis的key前缀
    private String prefix;
    //redis的key有效时间,-1L表示不需要指定过期时间,单位秒
    private Long time;

    private RedisKeys(String prefix,Long time){
        this.prefix=prefix;
        this.time=time;
    }
    //拼接完整的redis key
    public String join(String...values){
        StringBuilder sb = new StringBuilder(80);
        sb.append(this.prefix);
        for (String value : values) {
            sb.append(":").append(value);
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        RedisKeys.VERIFY_CODE.join("13700000000");
    }
}
